﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//int Add(int a, int b)
//{
//
//	return a + b;
//}
//
//
//
//
//
//int main()
//{
//
//	int (*p)(int, int) = &Add;
//	printf("%p\n", p);
//	printf("%p\n", Add);
//
//	int c=(*p)(3, 4);
//	int d = p(3, 4);
//	int f = Add(3, 4);
//
//	printf("c=%d\n", c);
//	printf("d=%d\n", d);
//	printf("f=%d\n", f);
//
//
//	return 0;
//}


#include <stdio.h>
int Add(int a, int b)
{
	return a + b;
}
int Sub(int a, int b)
{
	return a - b;
}
int Mul(int a, int b)
{
	return a * b;
}
int Div(int a, int b)
{
	return a / b;
}
int main()
{
	int x, y;
	int input = 1;
	int ret = 0;
	int(*p[5])(int x, int y) = { 0, Add, Sub, Mul, Div };
	do
	{
		printf("*************************\n");
		printf(" 1:加法   2:减法 \n");
		printf(" 3:乘法   4:除法 \n");
		printf(" 0:退出 \n");
		printf("*************************\n");
		printf("请选择你所需的功能：");
		scanf("%d", &input);
		if ((input <= 4 && input >= 1))
		{
			printf("输入操作数：");
			scanf("%d %d", &x, &y);
			ret = (*p[input])(x, y);
			printf("ret = %d\n", ret);
		}
		else if (input == 0)
		{
			printf("退出计算器\n");
		}
		else
		{
			printf("输⼊有误\n");
		}

	} while (input);
	return 0;
}